home *** CD-ROM | disk | FTP | other *** search
- /*
- * xrt.c - cross-reference table
- */
- .
- .
-
- struct treenode
- {
- char *word;
- ln_seq lines;
- treenode *left, *right;
- treenode(unsigned);
- };
-
- treenode::treenode(unsigned n) : lines(n) { }
-
- static treenode *addtree
- (treenode *t, char *w, unsigned n)
- {
- int cond;
-
- if (t == 0)
- {
- t = new treenode(n);
- t->word = new char[strlen(w) + 1];
- strcpy(t->word, w);
- t->left = t->right = 0;
- }
- else if ((cond = strcmp(w, t->word)) == 0)
- t->lines.add(n);
- else if (cond < 0)
- t->left = addtree(t->left, w, n);
- else
- t->right = addtree(t->right, w, n);
- return t;
- }
- .
- .
-
-